What is the main principle of Redux?
Could you please explain the CORE principle of Redux in a concise manner? How does it ensure the predictability and maintainability of application state, and how does it enforce a unidirectional data flow? Understanding the essence of Redux is crucial for developers working with React or any other JavaScript frameworks that utilize it.